home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / anti-i1a / navyet3.bas < prev   
BASIC Source File  |  1999-09-25  |  6KB  |  180 lines

  1. Attribute VB_Name = "NavyET3"
  2.  
  3. Public Const MAX_TOOLTIP As Integer = 64
  4. Public Const NIM_ADD = &H0
  5. Public Const NIM_DELETE = &H2
  6. Public Const NIF_ICON = &H2
  7. Public Const NIF_MESSAGE = &H1
  8. Public Const NIF_TIP = &H4
  9. Public Const WM_MOUSEMOVE = &H200
  10. Public Const WM_LBUTTONDBLCLK = &H203
  11. Public Const WM_LBUTTONDOWN = &H201
  12. Public Const WM_LBUTTONUP = &H202
  13. Public Const WM_RBUTTONDBLCLK = &H206
  14. Public Const WM_RBUTTONDOWN = &H204
  15. Public Const WM_RBUTTONUP = &H205
  16.  
  17. Type NOTIFYICONDATA
  18.     cbSize           As Long
  19.     hwnd             As Long
  20.     uID              As Long
  21.     uFlags           As Long
  22.     uCallbackMessage As Long
  23.     hIcon            As Long
  24.     szTip            As String * MAX_TOOLTIP
  25. End Type
  26. Public nfIconData As NOTIFYICONDATA
  27.  
  28. Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  29. Declare Function GetClassName& Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long)
  30. Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
  31. Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
  32. Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  33. Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
  34. Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  35. Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  36. Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
  37. Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
  38. Declare Function SenditByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam$)
  39. Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
  40. Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
  41.  
  42. Sub AOL4_SignOff()
  43.  
  44. Call RunMenuByString(AOLWindow(), "Sign Off")
  45.  
  46. End Sub
  47.  
  48. Function AOLWindow()
  49.  
  50. AOL% = FindWindow("AOL Frame25", vbNullString)
  51. AOLWindow = AOL%
  52.  
  53. End Function
  54.  
  55. Public Function Click(Window%)
  56.  
  57. lClick& = SendMessage(Window%, WM_LBUTTONDOWN, 0, 0&)
  58. lClick& = SendMessage(Window%, WM_LBUTTONUP, 0, 0&)
  59.  
  60. End Function
  61.  
  62.  
  63. Sub ClickIcon(icon%)
  64.  
  65. Dim Click%
  66. Click% = SendMessage(icon%, WM_LBUTTONDOWN, 0, 0&)
  67. Click% = SendMessage(icon%, WM_LBUTTONUP, 0, 0&)
  68.  
  69. End Sub
  70.  
  71.  
  72. Function FindChildByClass(parentw, childhand)
  73.  
  74. firs% = GetWindow(parentw, 5)
  75. If UCase(Mid(GetClass(firs%), 1, Len(childhand))) Like UCase(childhand) Then GoTo bone
  76. firs% = GetWindow(parentw, GW_CHILD)
  77. If UCase(Mid(GetClass(firs%), 1, Len(childhand))) Like UCase(childhand) Then GoTo bone
  78.  
  79. While firs%
  80. firss% = GetWindow(parentw, 5)
  81. If UCase(Mid(GetClass(firss%), 1, Len(childhand))) Like UCase(childhand) Then GoTo bone
  82. firs% = GetWindow(firs%, 2)
  83. If UCase(Mid(GetClass(firs%), 1, Len(childhand))) Like UCase(childhand) Then GoTo bone
  84. Wend
  85. FindChildByClass = 0
  86.  
  87. bone:
  88. room% = firs%
  89. FindChildByClass = room%
  90.  
  91. End Function
  92.  
  93. Function FindChildByTitle(parentw, childhand)
  94.  
  95. firs% = GetWindow(parentw, 5)
  96. If UCase(GetCaption(firs%)) Like UCase(childhand) Then GoTo bone
  97. firs% = GetWindow(parentw, GW_CHILD)
  98.  
  99. While firs%
  100. firss% = GetWindow(parentw, 5)
  101. If UCase(GetCaption(firss%)) Like UCase(childhand) & "*" Then GoTo bone
  102. firs% = GetWindow(firs%, 2)
  103. If UCase(GetCaption(firs%)) Like UCase(childhand) & "*" Then GoTo bone
  104. Wend
  105. FindChildByTitle = 0
  106.  
  107. bone:
  108. room% = firs%
  109. FindChildByTitle = room%
  110.  
  111. End Function
  112.  
  113. Function FixAPIString(sText As String) As String
  114.  
  115. On Error Resume Next
  116. If InStr(sText$, Chr$(0)) <> 0 Then FixAPIString = Trim(Mid$(sText$, 1, InStr(sText$, Chr$(0)) - 1))
  117. If InStr(sText$, Chr$(0)) = 0 Then FixAPIString = Trim(sText$)
  118.  
  119. End Function
  120.  
  121. Function GetAPIText(hwnd As Integer) As String
  122.  
  123. x = SenditByString(hwnd, WM_GETTEXTLENGTH, 0, 0)
  124.     Text$ = Space(x + 1)
  125.     x = SenditByString(hwnd, WM_GETTEXT, x + 1, Text$)
  126.     GetAPIText = FixAPIString(Text$)
  127.  
  128. End Function
  129.  
  130. Function GetCaption(hwnd)
  131.  
  132. hwndLength% = GetWindowTextLength(hwnd)
  133. hwndTitle$ = String$(hwndLength%, 0)
  134. A% = GetWindowText(hwnd, hwndTitle$, (hwndLength% + 1))
  135. GetCaption = hwndTitle$
  136.  
  137. End Function
  138.  
  139. Function GetClass(child)
  140.  
  141. buffer$ = String$(250, 0)
  142. getclas% = GetClassName(child, buffer$, 250)
  143. GetClass = buffer$
  144.  
  145. End Function
  146.  
  147. Sub RunMenuByString(Application, StringSearch)
  148.  
  149. ToSearch% = GetMenu(Application)
  150. MenuCount% = GetMenuItemCount(ToSearch%)
  151.  
  152. For FindString = 0 To MenuCount% - 1
  153. ToSearchSub% = GetSubMenu(ToSearch%, FindString)
  154. MenuItemCount% = GetMenuItemCount(ToSearchSub%)
  155.  
  156. For getstring = 0 To MenuItemCount% - 1
  157. SubCount% = GetMenuItemID(ToSearchSub%, getstring)
  158. MenuString$ = String$(100, " ")
  159. GetStringMenu% = GetMenuString(ToSearchSub%, SubCount%, MenuString$, 100, 1)
  160.  
  161. If InStr(UCase(MenuString$), UCase(StringSearch)) Then
  162. MenuItem% = SubCount%
  163. GoTo MatchString
  164. End If
  165.  
  166. Next getstring
  167.  
  168. Next FindString
  169. MatchString:
  170. RunTheMenu% = SendMessage(Application, WM_COMMAND, MenuItem%, 0)
  171.  
  172. End Sub
  173.  
  174. Sub Timeout(Duration)
  175.  
  176. starttime = Timer
  177. x = DoEvents()
  178.  
  179. End Sub
  180.